package fachade;

import java.sql.SQLException;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import dao.SolicitudDAO;
import entity.SolicitudBD;
import excepciones.Excepciones;
import negocio.Solicitud;

//esta clase va a buscar al dao las cosas y el principalFachade convierte BDtoNegocio o NegocioToBd
public class SolicitudNumeroCortoFachade {

	public List<Solicitud> getSolicitudesPendientes() throws Exception {
		
		List<SolicitudBD> solicitudes = null;
		List<Solicitud> solicitudesNegocio = null;
		solicitudes = new SolicitudDAO().getSolicitudesPendientes();
		Excepciones.obtenerInstancia().checkIfIsNull(solicitudes, "No hay solicitudes pendientes para el periodo seleccionado");
		solicitudesNegocio = new LinkedList<Solicitud>();

		for (Iterator iterator = solicitudes.iterator(); iterator.hasNext();) {
			SolicitudBD solicitudBD = (SolicitudBD) iterator.next();
			solicitudesNegocio.add(PrincipalFachade.getInstance().convertSolicitudBdToModel(solicitudBD));
		}	
		
		return solicitudesNegocio;
	}

	public List<String> getConceptosNroCorto() throws Exception{
		return new SolicitudDAO().getConceptosNroCorto();
	}

	public List<Solicitud> getSolicitudesFiltradas(String cliente,
			String numCorto, String estado, Date fechaDesde, Date fechaHasta) throws Exception {

		List<SolicitudBD> solicitudes = new SolicitudDAO().getSolicitudesFiltradas(cliente, numCorto, estado,fechaDesde, fechaHasta);
		List<Solicitud> solicitudesNegocio = new LinkedList<Solicitud>();
		
		if(solicitudes!=null){
			for (Iterator iterator = solicitudes.iterator(); iterator.hasNext();) {
				SolicitudBD solicitudBD = (SolicitudBD) iterator.next();
				solicitudesNegocio.add(PrincipalFachade.getInstance().convertSolicitudBdToModel(solicitudBD));
			}
		}
		return solicitudesNegocio;
	}

}
